home *** CD-ROM | disk | FTP | other *** search
/ Power Pack / Power_Pack_5_1992_Alfons_Mittelmeyer_de.d64 / graphics info (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  24KB  |  568 lines

  1. 10 rem =supergraphics info =========c64
  2. 20 rem graphics system by a.mittelmeyer
  3. 30 rem
  4. 40 rem fuer commodore c64
  5. 50 rem ================================
  6. 60 sys57812"supergraphics.mc",8,0:poke780,0
  7. 70 poke782,191:poke781,254:sys65493
  8. 80 goto5380
  9. 90 printchr$(147):sys52259,56320,56320,9216,1
  10. 100 print"wir befinden uns jetzt im textmodus"
  11. 110 print:print"der wechsel vom textmodus in den"
  12. 120 print"grafikmodus und wieder zurueck"
  13. 130 print"vollzieht sich mit folgenden befehlen"
  14. 140 print:print"grafik ein: sys51090"
  15. 150 print"grafik aus: sys51115"
  16. 160 print:print"dieses wollen wir uns einmal ansehen.":print
  17. 170 print"nach druecken einer taste kommen sie in"
  18. 180 print"den grafikmodus, nach einem weiteren"
  19. 190 print"tastendruck wieder in den textmodus."
  20. 200 gosub2300:sys51090
  21. 210 gosub2300:sys51115
  22. 220 printchr$(147)
  23. 230 print"vor dem ersten einschalten der grafik"
  24. 240 print"sollte die farbe voreingestellt"
  25. 250 print"und der grafik-bildschirm geloescht"
  26. 260 print"werden.":print
  27. 270 print"das einstellen der farbe fuer den"
  28. 280 print"gesamten bildschirm bewirkt:"
  29. 290 print"sys50906,vf,hf":print
  30. 300 print"vf ist vordergrundfarbe"
  31. 310 print"hf ist hintergrundfarbe":print
  32. 320 print"wie bereits vorher, gehen wir nach"
  33. 330 print"tastendruck wieder in den grafik-modus."
  34. 340 print"im unterschied zu vorher haben wir aber"
  35. 350 print"mit sys50906,1,0 die vordergrundfarbe"
  36. 360 print"weiss und die hintergrundfarbe schwarz"
  37. 370 print"eingestellt."
  38. 380 gosub2300:sys50906,1,0:sys51090
  39. 390 gosub2300:sys51115
  40. 400 printchr$(147):print"wenn der bildschirm noch etwas wirr"
  41. 410 print"aussah, so liegt es daran, dass er"
  42. 420 print"noch nicht geloescht war."
  43. 430 print:print"grafik-bildschirm loeschen: sys50941":print
  44. 440 print"die vollstaendige befehlsfolge fuer"
  45. 450 print"einschalten eines leeren bilschirms"
  46. 460 print"umfasst:"
  47. 470 print:print"farbeinstellung":print"bildchirmloeschen":print"grafik-ein"
  48. 480 print:print"etwa: sys50906,1,0:sys50941:sys51090"
  49. 490 gosub2270:sys50906,1,0:sys50941:sys51090
  50. 500 gosub2280:sys51115:return
  51. 510 gosub2260:sys50088,8,8,"wir befinden uns im grafikmodus"
  52. 520 sys50088,8,24,"auch hier ist text moeglich, wie zu"
  53. 530 sys50088,8,32,"zu sehen ist."
  54. 540 sys50088,8,48,"die befehle lauten:"
  55. 550 sys50088,24,64,"sys50088,x,y,"+chr$(34)+"text"+chr$(34)
  56. 560 sys50088,24,72,"sys50107,"+chr$(34)+"text"+chr$(34)
  57. 570 sys50088,8,88,"etwa:"
  58. 580 sys50088,24,104,"sys50088,80,144,"+chr$(34)+"text1"+chr$(34)
  59. 590 sys50088,24,112,"sys50107,"+chr$(34)+" text2"+chr$(34)
  60. 600 gosub2280:sys50088,80,144,"text1":sys50107," text2"
  61. 610 gosub2280:sys50941
  62. 620 sys50088,0,8,"bei der textausgabe findet kein zeilen-"
  63. 630 sys50088,0,16,"umbruch statt. er muss durch die angabe"
  64. 640 sys50088,0,24,"neuer koordinaten vorgenommen werden."
  65. 650 sys50088,0,40,"sind die koordinaten durch acht teilbar,"
  66. 660 sys50088,0,48,"so ist die ausgabe besonders schnell.":gosub2280
  67. 670 fori=0to7:sys50088,40+i,64+i*10,"ausgabetest":next
  68. 680 sys50088,0,152,"hier wurden die x-koordinaten um eins"
  69. 690 sys50088,0,160,"und die y-koordinaten um zehn erhoeht."
  70. 700 gosub2280:sys51115:return
  71. 710 gosub2260:sys50774,2,2:sys50088,40,8,"schriftgroesse":sys50774,1,1
  72. 720 sys50088,0,32,"im grafikmodus laesst sich die buch-"
  73. 730 sys50088,0,40,"stabengroesse veraendern."
  74. 740 sys50088,0,56,"der befehl dazu lautet: sys50774,vx,vy"
  75. 750 sys50088,0,72,"vx ist vergroesserung in x-richtung"
  76. 760 sys50088,0,80,"vy ist vergroesserung in y-richtung"
  77. 770 sys50088,0,96,"dazu einige beispiele"
  78. 780 gosub2280:sys50941:sys50774,1,25
  79. 790 sys50088,0,0,"a":sys50774,1,1
  80. 800 gosub2280:sys50941:sys50774,40,1
  81. 810 sys50088,0,0,"a":sys50774,1,1
  82. 820 gosub2280:sys50941:sys50774,40,25
  83. 830 sys50088,0,0,"a":sys50774,1,1
  84. 840 gosub2280:sys50941
  85. 850 sys50088,0,0,"das war etwas stark uebertrieben."
  86. 860 sys50088,0,8,"doppelt hohe und breite buchstaben"
  87. 870 sys50088,0,16,"sind fuer plakative ueberschriften"
  88. 880 sys50088,0,24,"aber geeignet."
  89. 890 sys50774,2,1:sys50088,0,48,"doppelt breit"
  90. 900 sys50774,1,2:sys50088,0,64,"doppelt hoch"
  91. 910 sys50774,2,2:sys50088,0,88,"doppelt hoch+breit":sys50774,1,1
  92. 920 sys50088,0,112,"die normalgroesse wird definiert durch:"
  93. 930 sys50088,0,128,"sys50774,1,1"
  94. 940 sys50088,0,144,"nur in normalgroese gibt es die"
  95. 950 sys50088,0,152,"schnelle textausgabe. vergroesserungen"
  96. 960 sys50088,0,160,"sind nur ganzzahlig moeglich.":gosub2280:sys51115:return
  97. 970 gosub2260:sys50088,240,0,""
  98. 980 fori=3to0step-1:sys50761,i,i
  99. 990 sys50107," schrift-ausrichtung ":next
  100. 1000 gosub2280
  101. 1010 sys50941:sys50761,3,3:sys50088,312,0,"wenn sie den bildschirm"
  102. 1020 sys50088,304,0,"gerne im hochformat"
  103. 1030 sys50088,296,0,"haetten, ist dieses"
  104. 1040 sys50088,288,0,"kein problem."
  105. 1050 sys50088,8,8,"weiter mit taste":gosub2300
  106. 1060 sys50761,0,0:sys50941
  107. 1070 sys50088,0,0,"fuer die beschriftung von diagrammen"
  108. 1080 sys50088,0,8,"ist gedrehte schrift recht nuetzlich."
  109. 1090 sys50088,0,24,"der befehl lautet: sys50761,ri,dr"
  110. 1100 sys50088,0,40,"ri ist die richtung der schrift"
  111. 1110 sys50088,0,48,"dr ist die drehung der buchstaben"
  112. 1120 sys50088,0,64,"beide groessen koennen werte von"
  113. 1130 sys50088,0,72,"0 bis 3 annehmen."
  114. 1140 sys 50088,0,96,"probieren sie es einfach aus.":gosub2280:ri=0:dr=0
  115. 1150 sys50941:sys50088,8,160,"richtung?"
  116. 1160 sys50088,8,168,"drehung?"
  117. 1170 sys50088,8,184,"abbruch mit leertaste"
  118. 1180 poke49634,3
  119. 1190 poke49863,1:sys50088,88,160," "
  120. 1200 poke49634,0:gosub2300:ifa$=" "then1340
  121. 1210 sys50774,2,2
  122. 1220 poke49863,0:sys50761,ri,dr:sys50088,160,96,"    ":sys50761,0,0
  123. 1230 sys50774,1,1
  124. 1240 ri=asc(a$)and3:a$=chr$(ri+48)
  125. 1250 sys50088,88,160,a$:poke49634,3
  126. 1260 poke49863,1:sys50088,88,168," "
  127. 1270 poke49634,0:gosub2300:ifa$=" "then1340
  128. 1280 dr=asc(a$)and3:a$=chr$(dr+48)
  129. 1290 poke49863,0:sys50088,88,168,a$
  130. 1300 sys50774,2,2:sys50761,ri,dr
  131. 1310 sys50088,160,96,"text"
  132. 1320 sys50761,0,0:sys50774,1,1
  133. 1330 goto1180
  134. 1340 poke49863,0
  135. 1350 sys50941:sys50088,0,0,"wie sie gesehen haben, laesst sich auch"
  136. 1360 sys50088,0,8,"die schrift-ausrichtung mit der"
  137. 1370 sys50088,0,16,"vergroesserung kombinieren."
  138. 1380 gosub2280:sys51115:return
  139. 1390 gosub2260:sys50774,160,100:sys49264,160,0:sys50774,2,2
  140. 1400 fori=0to3
  141. 1410 poke49634,i:sys50088,48,8+16*i,"schriftprobe":next
  142. 1420 sys50774,1,1:poke49634,0
  143. 1430 sys50088,0,120,"jedesmal erscheint dieselbe schrift."
  144. 1440 sys50088,0,128,"zweimal ist sie vollstaendig sichtbar,"
  145. 1450 sys50088,0,136,"zweimal nur teilweise."
  146. 1460 sys50088,0,152,"dieses liegt am textattribut."
  147. 1470 gosub2280:sys50941
  148. 1480 sys50088,0,0,"das textattribut kann werte"
  149. 1490 sys50088,0,8,"von 0 bis 3 annehmen."
  150. 1500 sys50088,0,24,"eingestellt wird es mit: poke49634,ta"
  151. 1510 sys50088,0,40,"ta=0: zeichenvordergrund -> vordergrund"
  152. 1520 sys50088,0,48,"      zeichenhintergrund -> hintergrund"
  153. 1530 sys50088,0,64,"ta=1: zeichenvordergrund -> vordergrund"
  154. 1540 sys50088,0,80,"ta=2: zeichenvordergrund -> hintergrund"
  155. 1550 sys50088,0,96 ,"ta=3: zeichenvordergrund tauscht"
  156. 1560 sys50088,0,104,"      vordergrund mit hintergrund"
  157. 1570 sys50088,0,128,"weitere moeglichkeiten bietet der"
  158. 1580 sys50088,0,136,"reverse zeichensatz. (siehe zeichensatz)"
  159. 1590 gosub2280:sys50941
  160. 1600 sys49415,160,8,120,48:sys49415,160,8,200,48
  161. 1610 sys49415,160,88,120,48:sys49415,160,88,200,48
  162. 1620 sys50524,160,48:poke49863,2
  163. 1630 sys50088,0,104,"[212]extattribut 3 eignet sich gut als"
  164. 1640 sys50088,0,112,"[195]ursor, da nochmaliges [211]chreiben das"
  165. 1650 sys50088,0,120,"vorher [199]eschriebene aufhebt."
  166. 1660 sys50088,0,136,"[212]extattribut 2 eignet sich besonders"
  167. 1670 sys50088,0,144,"zum [193]npinseln, da das [199]eschriebene"
  168. 1680 sys50088,0,152,"nur auf dem [214]ordergrund sichtbar wird."
  169. 1690 sys50088,0,160,"[194]ewegen sie mit den [195]ursortasten den"
  170. 1700 sys50088,0,168,"[208]insel doch einmal ueber den [194]ildschirm.":poke49863,0
  171. 1710 sys50088,8,184,"abbruch mit leertaste"
  172. 1720 x=0:y=0
  173. 1730 poke49634,3:sys50088,x,y,"[209]"
  174. 1740 gosub2300:sys50088,x,y,"[209]":ifa$=" "then1810
  175. 1750 poke49634,2:sys50088,x,y,"[191]"
  176. 1760 ifa$=""thenx=x+8
  177. 1770 ifa$="[157]"thenx=x-8
  178. 1780 ifa$=""theny=y+8
  179. 1790 ifa$="[145]"theny=y-8
  180. 1800 x=abs(x):y=abs(y)and255:goto1730
  181. 1810 poke49634,0:sys51115:return
  182. 1820 gosub2260:sys50774,80,80:sys49264,124,8
  183. 1830 sys50774,4,4:forj=0to2:poke49605,j
  184. 1840 forx=16to308step16:sys49264,x,16*j+16:next:next
  185. 1850 sys50894,1:poke49605,3:sys50774,1,1
  186. 1860 forx=16to308step16:sys49264,x,64:next:poke49605,1
  187. 1870 sys50088,0,104,"punkte werden ausgegeben durch:"
  188. 1880 sys50088,112,120,"sys49264,x,y"
  189. 1890 sys50088,0,136,"alles in der oberen bildschirmhaelfte"
  190. 1900 sys50088,0,144,"sind punkte."
  191. 1910 gosub2280:sys50941:poke49863,2
  192. 1920 sys50088,0,0,"[208]unkte koennen mit [211][217][211]50774,[214][216],[214][217] ver-"
  193. 1930 sys50088,0,8,"vergroessert werden und dadurch [204]inien-"
  194. 1940 sys50088,0,16,"und [198]laechencharakter annehmen."
  195. 1950 sys50088,0,32,"[196]ie [196]arstellung richtet sich nach dem"
  196. 1960 sys50088,0,40,"[208]unktattribut: [208][207][203][197]49605,[208][193]"
  197. 1970 sys50088,0,56,"[208][193]=0: [208]unkt loeschen"
  198. 1980 sys50088,0,64,"[208][193]=1: [208]unkt setzen"
  199. 1990 sys50088,0,72,"[208][193]=2: [208]unkt invertieren"
  200. 2000 sys50088,0,80,"[208][193]=3: [208]inselmuster ausgeben"
  201. 2010 sys50088,0,96,"[196]rei [205]oeglichkeiten gibt es, ein [208]insel-"
  202. 2020 sys50088,0,104,"muster zu erzeugen."
  203. 2030 sys50088,0,120,"- [208]oken in [193]dressen 49635 bis 49642"
  204. 2040 sys50088,0,128,"- [211][217][211]50894,[194]ildschirmcode eines [218]eichens"
  205. 2050 sys50088,0,136,"- vorangegangene [218]eichenausgabe"
  206. 2060 sys50088,0,152,"[196]ie [208]inselausgabe wird vom [212]extattribut"
  207. 2070 sys50088,0,160,"[208][207][203][197]49634,[212][193] bestimmt.":poke49863,0
  208. 2080 gosub2280:sys51115:return
  209. 2090 gosub2260:forx=0to320step20:sys49415,160,100,x,0:next
  210. 2100 poke49863,2:sys50088,0,112,"[204]inien entstehen durch [193]neinanderreihen"
  211. 2110 sys50088,0,120,"von [208]unkten. [196]amit dieses schnell vor"
  212. 2120 sys50088,0,128,"sich geht, gibt es die [210]outine:"
  213. 2130 sys50088,64,144,"[211][217][211]49415,[216][193],[217][193],[216][197],[217][197]"
  214. 2140 sys50088,0,160,"[193]nzugeben sind die [203]oordinaten des"
  215. 2150 sys50088,0,168,"[193]nfangs- und [197]ndpunktes."
  216. 2160 gosub2280:sys50941:poke49863,2
  217. 2170 sys50088,0,0,"[215]enn sich eine [198]igur aus aufeinander"
  218. 2180 sys50088,0,8,"folgenden [204]inien zusammensetzt und dabei"
  219. 2190 sys50088,0,16,"das [211]etzattribut 2 fuer [208]ixelinver-"
  220. 2200 sys50088,0,24,"tierung [214]erwendung findet, wuerden die"
  221. 2210 sys50088,0,32,"[193]nschlusspunkte wieder geloescht werden."
  222. 2220 sys50088,0,48,"[198]uer diesen [198]all gibt es eine [204]inien-"
  223. 2225 sys50088,0,56,"funktion, wobei der [193]nfangspunkt nicht"
  224. 2230 sys50088,0,64,"mit ausgegeben wird:"
  225. 2240 sys50088,104,80,"[211][217][211]51454,[216]1,[217]1,[216]2,[217]2"
  226. 2250 gosub2280:sys51115:return
  227. 2260 sys50906,1,0:sys50941:sys51090:return
  228. 2270 print:print"weiter mit taste":goto2300
  229. 2280 poke49863,0:sys50088,8,184,"weiter mit taste"
  230. 2290 gosub2300:sys50088,8,184,"                ":return
  231. 2300 geta$:ifa$=""then2300
  232. 2310 return
  233. 2320 gosub2260:sys51470,120,8,200,88
  234. 2330 sys51710,160,48,39:poke49863,2
  235. 2340 sys50088,0,104,"[198]iguren koennen durch [214]erwendung des"
  236. 2350 sys50088,0,112,"[208]unktes oder der [204]inie in [194][193][211][201][195] pro-"
  237. 2360 sys50088,0,120,"grammiert werden. [200]aeufig werden [203]reis"
  238. 2370 sys50088,0,128,"und [210]echteck benoetigt. [200]ierfuer gibt"
  239. 2380 sys50088,0,136,"es fertige [210]outinen."
  240. 2390 sys50088,0,152,"[210]echteck: [211][217][211]51470,[216]1,[217]1,[216]2,[217]2"
  241. 2400 sys50088,0,160,"[203]reis:    [211][217][211]51710,[216],[217],[210]":poke49863,0:goto2250
  242. 2410 gosub2260:fori=0to3:x1=10+80*i:sys51470,x1,8,x1+60,68:next
  243. 2420 sys50524,40,38:sys50524,120,38
  244. 2430 y=38:r=28:poke49605,0:sys51710,40,y,r:sys51710,120,y,r
  245. 2440 poke49605,1:sys51710,200,y,r:sys51710,280,y,r
  246. 2450 poke49863,2:sys50088,0,80,"[193]us [213]mrissen wird eine [198]laeche, wenn die"
  247. 2460 sys50088,0,88,"[198]uellfunktion angewendet wird:"
  248. 2470 sys50088,120,104,"[211][217][211]50524,[216],[217]"
  249. 2480 sys50088,0,120,"[202]e nach der [198]laechenbeschaffenheit wird"
  250. 2490 sys50088,128,136,"gefuellt "
  251. 2500 poke49863,0:gosub2280:poke49863,2
  252. 2510 sys50524,171,20:sys50524,280,30
  253. 2520 sys50088,0,144,"oder":sys50088,128,152,"geloescht"
  254. 2530 gosub2280
  255. 2540 sys50524,11,20:sys50524,120,30
  256. 2550 gosub2280:sys51115:return
  257. 2560 gosub2260:sys51470,110,0,210,100
  258. 2570 sys50774,10,10
  259. 2580 sys50088,120,10,"[166]"
  260. 2590 sys50774,1,1:poke49605,0:sys49264,180,30:poke49605,1
  261. 2600 sys50088,166,36,"[209]":sys50990
  262. 2610 poke49863,2:sys50088,0,104,"[198]uellen ist nicht ungefaehrlich."
  263. 2620 sys50088,0,112,"[196]as [209]uadrat, in dem sich das ":poke49863,0
  264. 2630 sys50107,"[209]-":poke49863,2:sys50107,"[218]eichen"
  265. 2640 sys50088,0,120,"befindet, soll gefuellt werden, doch"
  266. 2650 sys50088,0,128,"leider ist das [209]uadrat nicht ganz dicht.":poke49863,0
  267. 2660 gosub2280
  268. 2670 sys50524,160,49
  269. 2680 poke49863,2:sys50088,0,144,"[196]ieses war [208]ech, doch der [203]luge hat"
  270. 2690 sys50088,0,152,"vorgesorgt.":gosub2280
  271. 2700 sys51063:poke49863,2
  272. 2710 sys50088,0,104,"[215]er zuvor den [194]ildschirminhalt gerettet"
  273. 2720 sys50088,0,112,"hat, kann ihn wieder herholen."
  274. 2730 sys50088,0,128,"[194]ildschirm retten:   [211][217][211]50990"
  275. 2740 sys50088,0,136,"[194]ildschirm holen:    [211][217][211]51002"
  276. 2750 sys50088,0,152,"[193]usserdem gibt es noch etwas."
  277. 2760 sys50088,0,168,"[194]ildschirm tauschen: [211][217][211]51063"
  278. 2770 gosub2280:sys51063:gosub2280:sys51063:gosub2280
  279. 2780 fori=1to10:sys51063:next:sys51115:return
  280. 2790 gosub2260:sys51470,40,8,160,108
  281. 2800 sys50774,120,100:sys49264,160,8:sys50990
  282. 2810 poke49634,3:sys50774,2,2:sys50088,48,88,"schriftprobe":poke49634,0
  283. 2820 fori=0to6step2:sys51238,53248+i,170:next
  284. 2830 fori=1to7step2:sys51238,53248+i,85:next:sys50774,1,1
  285. 2840 poke49863,4:sys51179,0:sys50990
  286. 2850 poke49863,2:sys50088,0,120,"[218]eichen lassen sich als [198]uellmuster"
  287. 2860 sys50088,0,128,"verwenden. [196]ie [200]andhabung ist einfach"
  288. 2870 sys50088,0,136,"und passt nicht nur fuer mit"
  289. 2880 sys50088,0,144,"[211][217][211]50524,[216],[217] fuellbare [198]laechen, sondern"
  290. 2890 sys50088,0,152,"fuer jedes beliebige [207]bjekt.":gosub2280
  291. 2900 sys50941:poke49863,2:sys50088,0,0,"[194]evor irgendwelche [207]bjekte gefuellt"
  292. 2910 sys50088,0,8,"werden koennen, muessen sie definiert"
  293. 2920 sys50088,0,16,"sein. [197]ine oertliche [194]estimmung waere"
  294. 2930 sys50088,0,24,"sehr kompliziert. [196]aher wurde eine"
  295. 2940 sys50088,0,32,"zeitliche [194]estimmung gewaehlt."
  296. 2950 sys50088,0,40,"[196]rei [211]chritte sind auszufuehren:"
  297. 2960 sys50088,0,56,"1. [194]ildschirm retten mit [211][217][211]50990"
  298. 2970 sys50088,0,72,"2. [207]bjekt(e) auf den [194]ildschirm bringen"
  299. 2980 sys50088,0,88,"3. [198]uellmuster erzeugen mit [211][217][211]51179,[194][195]"
  300. 2990 sys50088,0,104,"[194][195] ist der [194]ildschirmcode des als [198]uell-"
  301. 3000 sys50088,0,112,"muster gewaehlten [218]eichens. [211][217][211]51179,[194][195]"
  302. 3010 sys50088,0,120,"vergleicht den geretteten [194]ildschirm mit"
  303. 3020 sys50088,0,128,"dem aktuellen, und traegt an den geaen-"
  304. 3030 sys50088,0,136,"derten [211]tellen das gewaehlte [218]eichen-"
  305. 3040 sys50088,0,144,"muster ein. [197]in [214]ergroesserungsfaktor"
  306. 3050 sys50088,0,152,"wird beim [198]uellmuster nicht wirksam,"
  307. 3060 sys50088,0,160,"wohl aber die [218]eichendrehung."
  308. 3070 gosub2280:sys51002:poke49863,2
  309. 3080 sys50088,104,120,"[198][213][197][204][204][194][197][201][211][208][201][197][204]"
  310. 3090 sys50088,48,136,"[194]ildschirm retten: [211][217][211]50990"
  311. 3100 sys50088,48,144,"[207]bjekte erzeugen"
  312. 3110 sys50088,48,152,"[198]uellmuster: [211][217][211]51179,102":goto3150
  313. 3120 b$="":fori=1tovx:b$=b$+" ":next:poke49863,1
  314. 3130 poke49634,3:sys50088,48,yy,b$:poke49634,0:gosub2280:poke49863,1
  315. 3140 poke49634,3:sys50088,48,yy,b$:poke49634,0:poke49863,0:return
  316. 3150 vx=27:yy=136:gosub3120:sys50990
  317. 3160 vx=16:yy=144:gosub3120:poke49605,2
  318. 3170 sys51710,100,48,30:sys51710,220,48,30:poke49605,1
  319. 3180 sys50524,100,48:sys50524,220,48
  320. 3190 vx=25:yy=152:gosub3120
  321. 3200 sys51179,102:goto2250
  322. 3210 gosub2260:sys50774,2,2:sys50088,20,8,"blockfuellmuster":sys50774,1,1
  323. 3220 poke49863,2:sys50088,0,104,"[196]ie [200]andhabung ist dieselbe, wie beim"
  324. 3230 sys50088,0,112,"[218]eichenfuellmuster. [201]m [213]nterschied dazu"
  325. 3240 sys50088,0,120,"finden nicht ein, sondern 16 [218]eichen"
  326. 3250 sys50088,0,128,"[214]erwendung.":sys50990
  327. 3260 sys50774,100,70:sys49264,110,27:sys50774,1,1
  328. 3270 sys52259,53248,53248,1024,1:sys52259,55296,54272,1024,1:gosub2280:sys51303,0
  329. 3280 poke49863,2:sys50088,0,152,"[196]er [194]efehl lautet: [211][217][211]51303,[206][210]":gosub2280
  330. 3290 sys50941:poke49863,2:sys50088,0,8,"[194]eim [198]uellmusterbefehl [211][217][211]51303,[206][210]"
  331. 3300 sys50088,0,16,"kann [206][210] [215]erte von 0 bis 31 annehmen."
  332. 3310 sys50088,0,24,"[196]ie [206]ummern kennzeichnen [194]loecke von"
  333. 3320 sys50088,0,32,"4x4 [194]uchstaben aus den definierbaren"
  334. 3330 sys50088,0,40,"[218]eichensaetzen 4 und 6 sowie den"
  335. 3340 sys50088,0,48,"reversen [218]eichensaetzen 5 und 7."
  336. 3350 sys50088,0,64,"[196]ie [193]ufteilung:"
  337. 3360 sys50088,48,80,"[206]ummern   [218]eichensatz"
  338. 3370 sys50088,40,96," 0 bis  7      4"
  339. 3380 sys50088,40,104," 8 bis 15      5"
  340. 3390 sys50088,40,112,"16 bis 23      6"
  341. 3400 sys50088,40,120,"24 bis 31      7"
  342. 3410 sys50088,0,144,"[196]ies koennen [211]ie anhand  einer [203]opie des"
  343. 3420 sys50088,0,152,"[210][207][205]-[218]eichensatzes naeher untersuchen.":gosub2280
  344. 3430 sys50941:sys50774,62,62:sys49264,65,65:sys50774,1,1
  345. 3440 sys51710,224,96,32:sys50524,224,96:poke49605,0:sys51710,224,96,32
  346. 3450 poke49605,1:gosub3460:sys50990:goto3540
  347. 3460 poke49863,2:sys50088,0,0,"[215]aehlen [211]ie mit den [212]asten "
  348. 3470 poke49863,3:sys50107,"+":poke49863,2:sys50107," und ":poke49863,3
  349. 3480 sys50107,"-":poke49863,2
  350. 3490 sys50088,0,8,"eine [205]usternummer aus und bestaetigen"
  351. 3500 sys50088,0,16,"[211]ie danach die [193]uswahl mit ":poke49863,3
  352. 3510 sys50107,"[210][197][212][213][210][206]":poke49863,2:sys50107,"."
  353. 3520 sys50088,8,184,"[215]eiter mit [204]eertaste":return
  354. 3530 sys50941:gosub3460:sys51470,64,64,127,127:sys51710,224,96,32:return
  355. 3540 we=0
  356. 3550 sys50088,8,144,"[205]usternummer: "+right$(str$(we),2)
  357. 3560 gosub2300:ifa$="+"then3610
  358. 3570 if a$="-"then3630
  359. 3580 if a$=" "then3660
  360. 3590 ifa$=chr$(13)then3650
  361. 3600 goto3560
  362. 3610 ifwe<>31thenwe=we+1
  363. 3620 goto3550
  364. 3630 ifwe<>0thenwe=we-1
  365. 3640 goto3550
  366. 3650 gosub3530:sys51303,we:goto3550
  367. 3660 sys50941:sys50088,0,0,"[215]enn [211]ie sich einen eigenen [218]eichensatz"
  368. 3670 sys50088,0,8,"entwerfen, koennen [211]ie im [206]u ein"
  369. 3680 sys50088,0,16,"[200]ausdach mit [196]achziegeln oder eine"
  370. 3690 sys50088,0,24,"[215]iese mit [194]lumen und [199]raesern versehen.":goto2250
  371. 3700 gosub2260:sys50088,8,184,"bitte warten"
  372. 3710 sys51991,8,"zsatz",53248,8:sys50941
  373. 3720 z$="abc[193][194][195][187][188][189][190][219][220][221]":sys50774,2,2
  374. 3730 poke49863,6:sys50088,60,8,"[218]eichens[187]tze":poke49863,2:sys50774,1,1
  375. 3740 sys50088,0,32,"[214]ier [218]eichensaetze stehen im [199]rafikmodus"
  376. 3750 sys50088,0,40,"zur [214]erfuegung, die zwei [210][207][205]-[218]eichen-"
  377. 3760 sys50088,0,48,"saetze und zwei benutzerdefinierbare"
  378. 3770 sys50088,0,56,"[210][193][205]-[218]eichensaetze."
  379. 3780 sys50088,0,72,"[196]ie [218]eichensatzwahl erfolgt durch:"
  380. 3790 sys50088,88,88,"[208][207][203][197]49863,[218][211]"
  381. 3800 sys50088,0,104,"[196]ie [218]eichensatznummer [218][211] kann [215]erte"
  382. 3810 sys50088,0,112,"von 0 bis 7 annehmen.":gosub2280:sys50941
  383. 3820 poke49863,2:sys50088,0,0,"[196]ie [218]eichensatznummern, die [193]dressen"
  384. 3830 sys50088,0,8,"und die [209]uelle sagt [201]hnen folgende"
  385. 3840 sys50088,0,16,"[212]abelle.":zs=0:goto3860
  386. 3850 poke49863,zs:sys50107,z$:poke49863,2:zs=zs+1:return
  387. 3860 sys50088,8,40,"[218][211] [193]dressen     [209]uelle  [194]eispiel"
  388. 3870 sys50088,8,56,"0  53248-54271  [210][207][205]     ":gosub3850
  389. 3880 sys50088,8,64,"1  54272-55295  [210][207][205]     ":gosub3850
  390. 3890 sys50088,8,80,"2  55296-56319  [210][207][205]     ":gosub3850
  391. 3900 sys50088,8,88,"3  56320-57343  [210][207][205]     ":gosub3850
  392. 3910 sys50088,8,104,"4  53248-54271  [210][193][205]     ":gosub3850
  393. 3920 sys50088,8,112,"5  53248-54271  [210][193][205]     ":gosub3850
  394. 3930 sys50088,8,128,"6  55272-55295  [210][193][205]     ":gosub3850
  395. 3940 sys50088,8,136,"7  55272-55295  [210][193][205]     ":gosub3850
  396. 3950 gosub2280:sys50941:poke49863,2
  397. 3960 sys50088,0,0,"[198]indet bei [194]efehlen er [194]ildschirmcode"
  398. 3970 sys50088,0,8,"eines [218]eichens [214]erwendung, so brauchen"
  399. 3980 sys50088,0,16,"[211]ie nicht mittels [208][207][203][197]49863,[218][211] einen"
  400. 3990 sys50088,0,24,"anderen [218]eichensatz waehlen, wenn [211]ie"
  401. 4000 sys50088,0,32,"das reverse [199]egenstueck moechten,"
  402. 4010 sys50088,0,40,"sondern nur den [194]ildschirmcode um den"
  403. 4020 sys50088,0,48,"[215]ert 128 erhoehen."
  404. 4030 poke49863,6:sys50088,0,64,"[221]brigens bekommen [211]ie, falls [211]ie den"
  405. 4040 sys50088,0,72,"auf der [196]iskette befindlichen [218]eichen-"
  406. 4050 sys50088,0,80,"satz [218][211][193][212][218] geladen haben die deutschen"
  407. 4060 sys50088,0,88,"[213]mlaute auf folgenden [212]asten:"
  408. 4070 sys50088,40,104,"[187]:  [195][194][205]   f"
  409. 4080 sys50088,40,112,"[188]:  [195][194][205]   c"
  410. 4090 sys50088,40,120,"[189]:  [195][194][205]   x"
  411. 4100 sys50088,40,128,"[190]:  [195][194][205]   v"
  412. 4110 sys50088,40,136,"[219]:  [211][200][201][198][212] +"
  413. 4120 sys50088,40,144,"[220]:  [195][194][205]   -"
  414. 4130 sys50088,40,152,"[221]:  [211][200][201][198][212] -"
  415. 4140 poke49863,2:sys50088,0,168,"[214]ergleiche hierzu [205]enuepunkt:"
  416. 4150 sys50088,0,176,"[203]opieren, [204]aden, [211]peichern.":goto2250
  417. 4160 gosub2260:poke49863,2:sys50088,56,0,"[203]opieren, [204]aden, [211]peichern"
  418. 4170 sys50088,0,32,"[203]opieren: [211][217][211]52259,[209],[218],[193],[198]"
  419. 4180 sys50088,0,48,"[209] = [209]uelladresse"
  420. 4190 sys50088,0,56,"[218] = [218]ieladresse"
  421. 4200 sys50088,0,64,"[193] = [193]nzahl"
  422. 4210 sys50088,0,72,"[198] = [198]lag (0/1 fuer [209]uelle = [210][193][205]/[210][207][205])
  423. 4220 [158]50088,0,88,"peekeispiel (NULL)(NULL)(NULL)-(NULL)eichensatz auf peekildschirm:"
  424. 4230 [158]50088,56,112,"(NULL)(NULL)(NULL)52259,53248,57344,4096,1":[141]2280
  425. 4240 [158]52259,53248,57344,4096,1
  426. 4250 [151]49863,2:[158]50088,0,136,"(NULL)ie koennen auch den (NULL)(NULL)(NULL)/(NULL)eichensatz zum"
  427. 4260 [158]50088,0,144,"(NULL)atn(NULL)-(NULL)eichensatz machen oder auf dem"
  428. 4270 [158]50088,0,152,"peekildschirm valntworfenes als (NULL)atn(NULL)-"
  429. 4280 [158]50088,0,160,"(NULL)eichensatz definieren.":[141]2280:[158]50941
  430. 4290 [151]49863,2:[158]50088,0,0,"peekeim (NULL)atn(NULL)-(NULL)eichensatz gilt es zu berueck-"
  431. 4300 [158]50088,0,8,"sichtigen, dass dort die reversen"
  432. 4310 [158]50088,0,16,"(NULL)eichen programmtechnisch erzeugt werden"
  433. 4320 [158]50088,0,24,"und daher nicht mit zu erfassen sind."
  434. 4330 z$[178][199](34)
  435. 4340 [158]50088,0,40,"(NULL)aden:     (NULL)(NULL)(NULL)51991,chr$atn,"[170]z$[170]"(NULL)ame"[170]z$[170]",atndr,peekl"
  436. 4350 [158]50088,0,48,"(NULL)peichern: (NULL)(NULL)(NULL)52122,chr$atn,"[170]z$[170]"(NULL)ame,(NULL),(NULL)"[170]z$[170]",atndr,peekl"
  437. 4360 [158]50088,8,64,"chr$atn  = chr$eraeteadresse"
  438. 4370 [158]50088,8,72,"atndr = (NULL)ade- oder (NULL)peicheradresse"
  439. 4380 [158]50088,8,80,"peekl  = peeklockzahl"
  440. 4390 [158]50088,0,96,"(NULL)u beachten ist, dass kein (NULL)anal mit"
  441. 4400 [158]50088,0,104,"(NULL)ummer 8 oder kein ascile mit (NULL)ekundaer-"
  442. 4410 [158]50088,0,112,"adresse 8 beim atnufruf dieser (NULL)outinen"
  443. 4420 [158]50088,0,120,"eroeffnet sein darf."
  444. 4430 [158]50088,0,136,"peekeim (NULL)peichern ist nicht die atnnzahl der"
  445. 4440 [158]50088,0,144,"peekytes, sondern die peeklockzahl, anzugeben."
  446. 4450 [158]50088,0,152,"peekeim (NULL)aden hat die peeklockzahl nur eine"
  447. 4460 [158]50088,0,160,"einschraenkende ascunktion und kann auch"
  448. 4470 [158]50088,0,168,"einfach auf den (NULL)aximalwert 255 gesetzt"
  449. 4480 [158]50088,0,176,"werden."
  450. 4490 [141]2280:[158]50941:[151]49863,2
  451. 4500 [158]50088,0,96,"peekeispiel: (NULL)aden des (NULL)eichensatzes (NULL)(NULL)atn(NULL)(NULL)"
  452. 4510 [158]50088,0,104,"und anschliessendes (NULL)opieren auf den"
  453. 4520 [158]50088,0,112,"peekildschirm."
  454. 4530 [158]50088,0,128,"(NULL)(NULL)(NULL)51991,8,"[170]z$[170]"(NULL)(NULL)atn(NULL)(NULL)"[170]z$[170]",53248,8"
  455. 4540 [158]50088,0,136,"(NULL)(NULL)(NULL)52259,53248,57344,2048,0"
  456. 4550 [158]51991,8,"zsatz",53248,8
  457. 4560 [158]52259,53248,57344,2048,0
  458. 4570 [151]49863,6:[158]50088,0,152,"ascexpr chr$rafiken gibt es spezielle (NULL)ade-"
  459. 4580 [158]50088,0,160,"und (NULL)peicherroutinen.":[137]2250
  460. 4590 [141]2260:[158]50990:[151]49863,2:[158]50774,2,2
  461. 4600 [158]50088,0,0,"(NULL)aden und (NULL)peichern"
  462. 4610 [158]50774,1,1:[158]50088,112,16,"von chr$rafiken"
  463. 4620 z$[178][199](34):[158]50088,0,40,"(NULL)aden:     (NULL)(NULL)(NULL)52030,chr$atn,"[170]z$[170]"(NULL)ame"[170]z$[170]",ascasc,peekasc"
  464. 4630 [158]50088,0,48,"(NULL)peichern: (NULL)(NULL)(NULL)52162,chr$atn,"[170]z$[170]"(NULL)ame,(NULL),(NULL)"[170]z$[170]",ascasc,peekasc"
  465. 4640 [158]50088,0,64,"chr$atn = chr$eraeteadresse"
  466. 4650 [158]50088,0,72,"ascasc = ascarbflag (0/1 = ohne/mit ascarbe)
  467. 4660 sys50088,0,80,"[194][198] = [194]ereichsflag (0/1)
  468. 4670 [158]50088,0,96,"peekasc=0: chr$rafikbildschirm wird adressiert"
  469. 4680 [158]50088,0,104,"peekasc=1: (NULL)icherungsbereich wird adressiert"
  470. 4690 [158]50088,0,120,"peekeispiel: (NULL)aden einer chr$rafik und zeigen"
  471. 4700 [158]50088,0,128,"nach (NULL)astendruck."
  472. 4710 [158]50088,0,144,"10 (NULL)(NULL)(NULL)52030,8,"[170]z$[170]"chr$(NULL)atnascright$(NULL)"[170]z$[170]",1,1"
  473. 4720 [158]50088,0,152,"20 geta$:ifa$="[170]z$[170]z$[170]"then 20"
  474. 4730 [158]50088,0,160,"30 (NULL)(NULL)(NULL)51002"
  475. 4740 [158]52030,8,"grafik",1,1:[141]2280:[158]51002:[137]2250
  476. 4750 [141]2260:[151]49863,2:[158]50088,64,0,"ascarbe kommt ins (NULL)piel"
  477. 4760 [158]50088,0,16,"(NULL)it (NULL)(NULL)(NULL)50906,(NULL)asc,left$asc kann die (NULL)order-"
  478. 4770 [158]50088,0,24,"und left$intergrundfarbe fuer den gesamten"
  479. 4780 [158]50088,0,32,"peekildschirm gesetzt werden."
  480. 4790 [158]50088,96,48,"left$right$(NULL)(NULL)val(NULL)chr$(NULL)(NULL)(NULL)str$ascatn(NULL)peekval"
  481. 4800 [151]49154,3:[129]i[178]0[164]15:[158]50906,1,i:[158]50873,1,0:[141]2280:[130]
  482. 4810 [158]50906,1,0:[158]50088,96,56,"vordergrundfarbe":[141]2280
  483. 4820 [129]i[178]0[164]15:[158]50906,i,0:[158]50873,1,0:[141]2280:[130]:[137]4890
  484. 4830 [151]49863,2:[158]51002
  485. 4840 [158]50088,152,48,"(NULL)(NULL)(NULL)val49154,"[170][199](fa[170]48)
  486. 4850 [151]49154,fa
  487. 4860 [158]50906,1,0:[151]49863,0:[129]j[178]0[164]15:[158]50088,152,j[172]8[170]64,""
  488. 4870 [129]i[178]0[164]15:[158]50873,i,j:[158]50107,"(NULL)":[130]:[130]:[151]49154,0:[158]50873,1,0
  489. 4880 [137]2280
  490. 4890 [158]50906,1,0:[151]49863,2
  491. 4900 [158]50088,0,72,"valine von der chr$lobaleinstellung"
  492. 4910 [158]50088,0,80,"abweichende ascarbe kann auch beim (NULL)etzen"
  493. 4920 [158]50088,0,88,"von (NULL)unkten oder der (NULL)extausgabe in der"
  494. 4930 [158]50088,0,96,"naeheren (NULL)mgebung des gesetzten (NULL)unktes"
  495. 4940 [158]50088,0,104,"wirksam werden."
  496. 4950 [158]50088,0,120,"str$ie ascarbwahl geschieht hier mit:"
  497. 4960 [158]50088,96,136,"(NULL)(NULL)(NULL)50873,(NULL)asc,left$asc"
  498. 4970 [141]2280:[151]49863,2:[158]50941
  499. 4980 [158]50088,0,0,"str$ie gewaehlte ascarbkombination wird nicht"
  500. 4990 [158]50088,0,8,"immer wirksam, sondern nur, wenn dieses"
  501. 5000 [158]50088,0,16,"auch gewuenscht wird. left$ierzu gibt es das"
  502. 5010 [158]50088,0,24,"ascarbattribut, welches gaendert wird mit:"
  503. 5020 [158]50088,96,40,"(NULL)(NULL)(NULL)val49154,ascatn"
  504. 5030 [158]50088,0,56,"mid$e nach ascarbattribut wird die ascarbe"
  505. 5040 [158]50088,0,64,"nicht, nur die (NULL)ordergrundfarbe, nur"
  506. 5050 [158]50088,0,72,"die left$intergrundfarbe, oder sowohl"
  507. 5060 [158]50088,0,80,"(NULL)order- sowie left$intergrundfarbe wirksam."
  508. 5070 [158]50088,8,96,"ascarbattribut und wirksame ascarben:"
  509. 5080 [158]50088,104,112,"ascatn=0: -- --"
  510. 5090 [158]50088,104,120,"ascatn=1: (NULL)asc --"
  511. 5100 [158]50088,104,128,"ascatn=2: -- left$asc"
  512. 5110 [158]50088,104,136,"ascatn=3: (NULL)asc left$asc"
  513. 5120 [141]2280:[158]50941:[151]49863,2
  514. 5130 [158]50774,2,2:[158]50088,64,0,"ascarbbeispiel":[158]50774,1,1
  515. 5140 [158]50088,0,24,"(NULL)(NULL)(NULL)val49154,ascatn entscheidet ueber das zum"
  516. 5150 [158]50088,0,32,"(NULL)uge kommen der durch (NULL)(NULL)(NULL)50873,(NULL)asc,left$asc"
  517. 5160 [158]50088,0,40,"gesetzten ascarben:"
  518. 5170 [158]51470,151,63,280,192
  519. 5180 [158]50990:[129]fa[178]0[164]3:[141]4830:[130]
  520. 5190 [141]2260
  521. 5200 [151]49863,2:[158]50088,0,0,"str$ie (NULL)erwendung unterschiedlicher ascarben"
  522. 5210 [158]50088,0,8,"ist etwas problematisch, da die ascarbe"
  523. 5220 [158]50088,0,16,"nicht nur fuer einen einzelnen (NULL)unkt,"
  524. 5230 [158]50088,0,24,"sondern fuer eine (NULL)atrix aus 8 mal 8"
  525. 5240 [158]50088,0,32,"(NULL)unkten gilt. str$a kann es leicht zu"
  526. 5250 [158]50088,0,40,"(NULL)eberschneidungen kommen."
  527. 5260 [158]50873,7,6:[151]49154,1:[158]50774,2,2:[158]51710,130,120,60
  528. 5270 [158]50873,10,6:[151]49154,3:[158]51710,190,120,60:[158]50873,1,0:[151]49154,0
  529. 5280 [158]50774,1,1:[141]2280
  530. 5290 [141]2260:[151]49863,2:[158]50088,0,0,"atnuch nach der ascertigstellung einer"
  531. 5300 [158]50088,0,8,"chr$rafik kann diese noch eingefaerbt"
  532. 5310 [158]50088,0,16,"werden. (NULL)(NULL)(NULL)51075,(NULL),(NULL) setzt nur die"
  533. 5320 [158]50088,0,24,"ascarbinformation, ohne einen (NULL)unkt"
  534. 5330 [158]50088,0,32,"auszugeben.":[141]2280
  535. 5340 [158]50873,7,6:[151]49154,3:[129]x[178]64[164]152[169]8:[158]51075,x,16:[130]
  536. 5350 [151]49154,0:[137]2250
  537. 5360 [151]49863,0:[137]2250
  538. 5370 [153]"
  539. 5380 printchr$(147):printtab(10)"supergraphic info"
  540. 5390 print:print
  541. 5400 print" a = grafik ein/aus, farbe, loeschen"
  542. 5410 print" b = textausgabe"
  543. 5420 print" c = vergroesserung"
  544. 5430 print" d = zeichendrehung, schriftrichtung"
  545. 5440 print" e = textattribut"
  546. 5450 print" f = punktausgabe, setzattribut"
  547. 5460 print" g = linien"
  548. 5470 print" h = figuren: kreis, rechteck"
  549. 5480 print" i = flaechen fuellen, leeren"
  550. 5490 print" j = bildschirm retten, holen, wechseln"
  551. 5500 print" k = zeichenfuellmuster"
  552. 5510 print" l = blockfuellmuster"
  553. 5520 print" m = zeichensaetze"
  554. 5530 print" n = kopieren, laden, speichern"
  555. 5540 print" o = grafik laden/speichern"
  556. 5550 print" p = farbe"
  557. 5560 print" q = ende"
  558. 5570 print:print"treffen sie ihre wahl!"
  559. 5580 gosub2300:ifa$<"a"ora$>"q"then5580
  560. 5590 a=asc(a$)-64
  561. 5600 ifa>13then5630
  562. 5610 onagosub90,510,710,970,1390,1820,2090,2320,2410,2560,2790,3210,3700
  563. 5620 goto5380
  564. 5630 ona-13gosub4160,4590,4750,5650
  565. 5640 goto5380
  566. 5650 end
  567. 5660 rem ===programmende===============
  568.